45 template<
typename TValue,
typename Enable =
void>
49 template<
typename TValue>
52 <TValue, typename std::enable_if<std::is_floating_point<TValue>::value>::type>
72 #define DEFAULT_COORD_ID -1 73 #define COORD_ERROR "Error: Wrong coordinate identifier!!!" 74 #define COORD_OPTIMIZATION_IS_ON 0 77 template<
typename TValue>
99 size_t _coordinate_id;
100 #if !COORD_OPTIMIZATION_IS_ON 101 std::vector<TValue> _coordinates;
110 template<
typename TValue>
116 #if !COORD_OPTIMIZATION_IS_ON 124 template<
typename TValue>
130 #if !COORD_OPTIMIZATION_IS_ON 138 template<
typename TValue>
144 #if !COORD_OPTIMIZATION_IS_ON 155 template<
typename TValue>
161 #if !COORD_OPTIMIZATION_IS_ON 172 template<
typename TValue>
175 : _coordinate_id(source._coordinate_id)
178 #if !COORD_OPTIMIZATION_IS_ON 179 _coordinates = source._coordinates;
192 template<
typename TValue>
200 #if !COORD_OPTIMIZATION_IS_ON 201 return _coordinates[coord];
203 return _coordinates.get()[coord];
208 template<
typename TValue>
216 #if !COORD_OPTIMIZATION_IS_ON 217 _coordinates[coord] = value;
219 _coordinates.get()[coord] = value;
224 template<
typename TValue>
229 return _coordinate_id;
233 template<
typename TValue>
242 template<
typename TValue>
247 #if !COORD_OPTIMIZATION_IS_ON 249 std::copy(_coordinates.begin(), _coordinates.end(), coord_array.get());
264 template <
typename TValue>
270 CFEXPVector(
size_t id, TValue x, TValue y, TValue z);
274 void SetVector(TValue x , TValue y , TValue z);
275 void SetVector(TValue x1, TValue y1, TValue z1, TValue x2, TValue y2, TValue z2);
280 void create_vector(TValue x, TValue y, TValue z);
287 template <
typename TValue>
294 template <
typename TValue>
304 template <
typename TValue>
316 template <
typename TValue>
321 create_vector(x, y, z);
325 template <
typename TValue>
327 ::SetVector(TValue x1, TValue y1, TValue z1, TValue x2, TValue y2, TValue z2)
330 create_vector(x2 - x1, y2 - y1, z2 - z1);
334 template <
typename TValue>
344 template <
typename TValue>
355 template <
typename TValue>
378 template<
typename TValue>
393 std::vector<Ptr<CFEXPVector<TValue>>> _plane;
394 void create_plane(
size_t id,
403 template<
typename TValue>
410 create_plane(
id, nd1, nd2, nd3);
414 template<
typename TValue>
449 vect_y->SetVector(valu_x, valu_y, valu_z);
451 _plane = { vect_x, vect_y, vect_z };
455 template<
typename TValue>
459 return _plane[coord];
469 #define DEFAULT_BB_RATIO 1.0 / 10.0 476 using t_BoundBox = std::map<EBoundingBox, Ptr<CFEXPFECoordinates<t_fexpcommon_ct>>>;
492 template<
typename TValue>
494 std::vector<std::tuple<size_t, Ptr<CFEXGeomTools::t_BoundBox>>>>;
496 #endif // !_CFEXPGEOM_H_
#define IT
Definition: FEXPCommon.h:155
EFEXPFENaturalCoordinates
Type of individual natural coordinate.
Definition: FEXPGeom.h:29
std::map< size_t, std::vector< std::tuple< size_t, Ptr< CFEXGeomTools::t_BoundBox > >> > t_MacroModelMap
Definition: FEXPGeom.h:494
virtual void SetCoordinate(FEXPFEGeom::EFEXPFECoordinates coord, TValue value)
Definition: FEXPGeom.h:210
Definition: FEXPGeom.h:31
Plane definition.
Definition: FEXPGeom.h:379
virtual ~CFEXPFECoordinates()
Definition: FEXPGeom.h:87
#define FEXPCOMMON_FOREACH(start, end, index)
Definition: FEXPCommon.h:153
Definition: FEXPGeom.h:46
Definition: FEXPGeom.h:32
Finite element node coordinates.
Definition: FEXPGeom.h:78
Definition: FEXPGeom.h:34
virtual Ptr< TValue > GetCoordArray() override
Definition: FEXPGeom.h:244
Definition: FEXPCommon.h:276
double t_fexpcommon_ct
Definition: FEXPCommon.h:120
CFEX3DPlane(size_t id, const Ptr< CFEXPFECoordinates< TValue >> &nd1, const Ptr< CFEXPFECoordinates< TValue >> &nd2, const Ptr< CFEXPFECoordinates< TValue >> &nd3)
Definition: FEXPGeom.h:404
Definition: FEXPGeom.h:33
virtual TValue GetCoordinate(FEXPFEGeom::EFEXPFECoordinates coord) const
Definition: FEXPGeom.h:194
#define FEXPCOMMON_DEFAULT_INDX
Definition: FEXPCommon.h:171
CFEXPVector(size_t id)
Definition: FEXPGeom.h:289
Ptr< CFEXPVector< TValue > > & GetVector(FEXPFEGeom::EFEXPFECoordinates coord)
Definition: FEXPGeom.h:456
#define FEXPCOMMON_EXCEPTION(error_text)
Definition: FEXPCommon.h:143
Definition: FEXPGeom.h:22
virtual size_t GetNodeId()
Definition: FEXPGeom.h:226
#define FEXPCOMMON_FOREACH_ITER(data)
Definition: FEXPCommon.h:156
Definition: FEXPGeom.h:21
#define DEFAULT_COORD_ID
Definition: FEXPGeom.h:72
virtual ~CFEXPVector()
Definition: FEXPGeom.h:272
Definition: FEXPGeom.h:23
virtual void SetCoordinate(FEXPFEGeom::EFEXPFECoordinates coord, TValue value) override
Definition: FEXPGeom.h:336
virtual ~CFEX3DPlane()
Definition: FEXPGeom.h:386
#define COORD_ERROR
Definition: FEXPGeom.h:73
Definition: FEXPGeom.h:24
static Ptr< TType > SafeAllocInstanceArray(size_t length)
It allocates data array.
Definition: FEXPCommon.h:410
Smart pointer.
Definition: FEXPCommon.h:274
virtual void SetNodeId(size_t id)
Definition: FEXPGeom.h:235
CFEXPFECoordinates()
Definition: FEXPGeom.h:112
Definition: FEXPGeom.h:15
Vector definition.
Definition: FEXPGeom.h:265
void SetVector(TValue x, TValue y, TValue z)
Definition: FEXPGeom.h:318
virtual ~ICFEXPFECoordinatesBase()
Definition: FEXPGeom.h:56
ICFEXPFECoordinatesBase()
Definition: FEXPGeom.h:55
EFEXPFECoordinates
Type of individual coordinate.
Definition: FEXPGeom.h:19